home *** CD-ROM | disk | FTP | other *** search
/ Penthouse: Select a Pet 2 / Penthouse Select A Pet II.iso / mac / MSSHARED.INC < prev    next >
Text File  |  1995-05-04  |  4KB  |  111 lines

  1. GLOBAL SharedFileNeedsCopying AS INTEGER
  2.  
  3. DECLARE FUNCTION WCompareVersion (szVer1$, szVer2$) AS INTEGER
  4.  
  5. DECLARE FUNCTION FindSharedFileFromPath (szField$, szVersion$) AS STRING
  6.  
  7. DECLARE FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) AS STRING
  8.  
  9. '' returns: 1 if szVer1$ > szVer2$;  0 if equal;  -1 if szVer1$ < szVer2$
  10. ''
  11. FUNCTION WCompareVersion (szVer1$, szVer2$) STATIC AS INTEGER
  12.     IF szVer1$ = "" THEN
  13.         IF szVer2$ = "" THEN
  14.             WCompareVersion = 0
  15.         ELSE
  16.             WCompareVersion = -1
  17.         END IF
  18.     ELSEIF szVer2$ = "" THEN
  19.         WCompareVersion = 1
  20.     ELSE
  21.         WCompareVersion = 0
  22.         FOR i% = 1 TO 4 STEP 1
  23.             piece1& = GetVersionNthField(szVer1$, i%)
  24.             piece2& = GetVersionNthField(szVer2$, i%)
  25.             IF piece1& > piece2& THEN
  26.                 WCompareVersion = 1
  27.                 GOTO _WCV_END
  28.             ELSEIF piece1& < piece2& THEN
  29.                 WCompareVersion = -1
  30.                 GOTO _WCV_END
  31.             END IF
  32.         NEXT i%
  33.     END IF
  34. _WCV_END:
  35. END FUNCTION
  36.  
  37.  
  38. '' private to this file - needed in next api
  39. ''
  40. FUNCTION FindSharedFileFromPath(szField$, szVersion$) STATIC AS STRING
  41.     FindSharedFileFromPath = ""
  42.     SharedFileNeedsCopying = 0
  43.     IF szField$ <> "" THEN
  44.         IF DoesFileExist(szField$, OF_EXIST) = 0 THEN
  45.             szFile$ = STRING$(32, 32)
  46.  
  47.             IF FParseFATPathIntoPieces(szField$, NULL, 0, NULL, 0, szFile$, 31) <> 0 THEN
  48.                 szField$ = FindFileUsingFileOpen(szFile$)
  49.             ELSE
  50.                 szField$ = ""
  51.             END IF
  52.             szFile$ = ""
  53.         END IF
  54.  
  55.         IF szField$ <> "" THEN
  56.             IF WCompareVersion(GetVersionOfFile(szField$), szVersion$) >= 0 THEN
  57.                 FindSharedFileFromPath = szField$
  58.             ELSEIF IsFileWritable(szField$) <> 0 THEN
  59.                 SharedFileNeedsCopying = 1
  60.                 FindSharedFileFromPath = szField$
  61.             END IF
  62.  
  63.             szField$ = ""
  64.         END IF
  65.     END IF
  66. END FUNCTION
  67.  
  68.  
  69. FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) STATIC AS STRING
  70.  
  71.     SearchForLocationForSharedFile = szDefault$
  72.  
  73. '$IFDEF    REG_DB_ENABLED
  74.     IF szRegDbKey$ <> "" THEN
  75.         szField$ = GetRegKeyValue(szRegDbKey$)
  76.         szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  77.         IF szFile$ <> "" THEN
  78.             SearchForLocationForSharedFile = szFile$
  79.             szFile$ = ""
  80.             GOTO _SFLSFS_END
  81.         END IF
  82.     END IF
  83. '$ENDIF '' REG_DB_ENABLED
  84.  
  85.     IF szWinIniSect$ <> "" AND szWinIniKey$ <> "" THEN
  86.         szWinIniLine$ = GetIniKeyString("WIN.INI", szWinIniSect$, szWinIniKey$)
  87.         IF szWinIniLine$ <> "" THEN
  88.             szField$ = GetNthFieldFromIniString(szWinIniLine$, iWinIniField%)
  89.             szWinIniLine$ = ""
  90.             szFile$ = FindSharedFileFromPath(szField$, szVersion$)
  91.             IF szFile$ <> "" THEN
  92.                 SearchForLocationForSharedFile = szFile$
  93.                 szFile$ = ""
  94.                 GOTO _SFLSFS_END
  95.             END IF
  96.         END IF
  97.     END IF
  98.  
  99.     '' return value is still szDefault$ - assume it is writable
  100.     SharedFileNeedsCopying = 1
  101.     IF DoesFileExist(szDefault$, OF_EXIST) <> 0 THEN
  102.         IF WCompareVersion(GetVersionOfFile(szDefault$), szVersion$) >= 0 THEN
  103.             SharedFileNeedsCopying = 0
  104.         END IF
  105.     END IF
  106.  
  107. _SFLSFS_END:
  108.  
  109. END FUNCTION
  110.  
  111.